安布尔·塞特尔(Amber Settle)博士是美国计算机学会计算机教育特别兴趣组(ACM SIGCSE)主席。她长期关注中国计算机教育发展动向,多次访问中国,积极推进ACM与中国计算机教育界的密切合作。她在芝加哥大学获得博士学位,现任德保罗大学(DePaul University)计算机学院副教授。她自1996年以来一直担任全职教师,拥有深厚的教育理论造诣和丰富的一线教学经验。2010年后在ACM SIGCSE顾问委员会工作,现任SIGCSE主席。
今年5月,ACM图灵奖五十年中国大会在上海举行。其中的计算机教育分论坛由ACM SIGCSE中国分会主办。塞特尔在会上作了报告。借此契机,笔者就计算机教育问题对塞特尔进行了专访。
关于ACM SIGCSE
教育是计算机科学研究实践的一个特别分支,其目标是利用先进的计算机技术培养人才,对于学科发展、人才储备和促进应用等具有重要意义。ACM十分重视对计算机教育的研究,设立了计算机教育特别兴趣组,为教育人员提供了一个讨论计算机教学计划的制定、执行和评估等教学要素的平台。
问:当时,您是基于什么情况选择了教育作为自己的研究方向?
塞特尔:德保罗大学是以教学为导向的机构。作为助理教授,我获得了很多对教学和课程改进的机会。这引起了我发表论文的兴趣。在我申请终身教职的过程中,学校的人事委员会也鼓励我这样做。人事委员会中有一位是ACM SIGCSE的资深成员,使我对ACM SIGCSE有了初步的了解。当我在计算机教育领域发表了论文并获得了资助后,我对ACM SIGCSE的工作也产生了兴趣。
问:ACM SIGCSE有哪些重要会议或研讨会,可以让关心计算机教育的人士参与交流?
塞特尔:ACM SIGCSE每年主办三个会议:ICER1、ITiCSE2和SIGCSE研讨会。对计算机教育感兴趣的人士可以参加这些会议。即使是尚未准备好在计算机教育领域发表论文的人,也可以通过参加会议或阅读其他人在会议上发表的成果而有所收获。SIGCSE还支持各种合作会议,包括澳大利亚计算教育会议(ACE)等。
关于计算机专业教育
计算机科学技术飞速更新的特性意味着计算机专业教育必须紧跟业界发展节奏。这要求计算机教育者不仅能对计算机领域的现状做出准确判断,而且能敏锐地捕捉到计算机技术未来的发展动向,提前布局,合理规划,而其中的摸索试错过程必不可少。
问:计算机技术对世界的影响越来越大,互联网已经融入人们的生活,人工智能也在快速兴起。您觉得这些新兴技术对计算机教育会有哪些影响?
塞特尔:技术的更新总会引起教育的变化,而这些变化很难预测。技术更新不重要,重要的是不要迷恋技术本身,而要设法运用技术来做有意义的事。我希望教育工作者聚焦于学生学习的具体目标,比如提高参与度或学习能力,然后试着去想象如何靠技术的进步实现这些目标。
问:对于大学计算机专业的教育,您觉得近20年来有哪些重要的变化?现在亟待解决的问题又有哪些?
塞特尔:20年前,计算机科学被视为一个专门的学科。学生可以选择学习这个专业,但它并不是每个学生必须学习的知识。然而时过境迁,教育工作者应该逐渐意识到所有学生都应该对计算机有所了解。可我遗憾地发现,这一观点并没有成为共识,一些教育工作者现在仍持反对意见。此外,即使那些认为学生都应了解计算机知识的人,仍在讨论哪些概念是必须掌握的。划分出计算机专业和非计算机专业大学生应掌握的知识范围仍然是个棘手的问题,值得每个计算机教育工作者思考。
问:近几年,在线教育(MOOC)发展很快,但质疑的声音也很多。您怎么看待MOOC在计算机教育方面的成效以及未来发展的趋势?
塞特尔:现在MOOC的问题是把技术放在首位,而不是他们希望实现的教育目标。事实证明,其他教育方式已经能很好地满足MOOC受众的需求了。MOOC工作者应该首先表达他们希望实现的教育目标,然后思考如何利用技术帮助他们实现这些目标。如果按照这个方式来开展工作,MOOC才有可能实现创作者的设想。
面向非计算机专业的计算机教育
计算机教育的受众群体已经不再局限于大学计算机专业的学生。学科自身和现代社会的发展都要求开展面向非计算机专业人士的计算机教育。然而,这是一个庞大而又多元的群体。如何提供令他们满意的教育服务,需要多领域专家进行广泛探讨。
问:对于非计算机专业的学生,应该开展哪些计算机相关的教育内容?
塞特尔:对非计算机专业人士的计算机教育通常是比较肤浅的,例如使用文字或数据处理软件的基础知识。但我认为,这一情况正在发生变化。至少在美国,非计算机专业人士正在学习更深层的计算相关的概念,如编程、数据可视化或其他可以被称为“计算思维”的内容。不过我觉得,即使是那些在学习“计算思维”的非计算机专业人士,也没有因为学习了计算机而让他们在自己的学科领域受益。让非计算机专业人士学习计算机知识的动力是,理解计算机如何让他们在自己所在的学科受益。因此,计算机科学家应该把其他学科纳入到自己工作的背景进行考量。
问:您觉得非计算机专业的大学生应该掌握哪些计算机知识和技能?
塞特尔:非计算机专业的大学生应该掌握的一个重要概念是“计算思维”,例如抽象、分解、算法、自动化等。这里并不是必须包括编程,尽管编程是打开其他许多概念大门的一把钥匙。现在美国高中生有一门“计算机原理”课程,这个可供参考,或许是思考这个问题的最佳起点3。
问:计算机科学技术更新换代比较快,非计算机专业的学生所学的计算机知识会不会很快失效,使得学习成本和效益失衡?
塞特尔:如果技术升级导致非计算机专业学生学习的计算机知识过时,那么说明他们学习的是错误的知识。虽然学生学习的具体工具可能会改变(例如,C变成C++、Java或者Python),但核心概念不会变。写下指令,使其具体到能由计算机执行,这是人们在发明计算机之前一直在做的事情。爱达·勒芙蕾丝(Ada Lovelace)被认为是世界上第一个程序员,但她生活的年代比第一台计算机问世还要早100多年。我们既要教授专业和非专业人士计算机科学的核心思想,也要教他们使用表达这些概念的具体工具。向非专业人士教授的思想深度不用太深,但基本概念应该让其学习。具体的工具背后往往有宏大的理念。
问:计算机专业的学生应该受到哪些教育?
塞特尔:计算机专业学生应该学习的远不止编程。而对于非计算机专业人士来说,在有限的学习中掌握计算机科学背后的重要思想过于深奥。例如,计算机科学专业的学生应该能够指出各种编程设计方法的优点和缺点,以及了解和阐释如何根据具体情况选择使用何种方法。
中小学的计算机教育
如今,计算机早已不只是科研人员的工具,更不是独属于高等教育的学术课题。因此,计算机学习在教育生涯时间线上被不断前移,低龄儿童在计算机学习大军中的比例快速增加。美国已试水开发中小学计算机课程,但其推广过程并非一帆风顺。
问:2016年初,时任美国总统奥巴马公开宣布将投资40亿美元,推动美国计算机教育的发展,而且要求小学生就要学习编程。您怎么看待这项政策?现在一年过去了,效果如何?
塞特尔:懂得一些计算机知识对于所有学生来说都很重要。我不确定是否必须是关于编程的,但编程可能是最容易想到的。
讨论美国全民计算机教育很有意义,但在实施过程中存在诸多障碍。首先,我们需要大量的教师来教授全美5000万名学生,我们距离这一条件还很远。要想满足这一条件,必须要以奇迹般的增长速度来发展现有的基础。就算获得了资金和政策支持,后面要面临的组织工作也是一道难关。
问:您觉得学生应该从什么年龄开始接受计算机教育?编程是学习计算机入门的最佳选择吗?除了编程,中小学的计算机教育还应该包含哪些内容?在这方面,您有没有印象深刻的教学案例可以推荐给读者?
塞特尔:有很多教育工作者正在试图回答这些问题,其中许多人参加了ACM SIGCSE会议。现在普遍认为学生在大学之前就应该学习计算机。在美国面向中学的计算机大学先修(Advanced Placement, AP)课程中,有两个很好的模式:CS原则4和AP CS5。计算机科学教师协会(Computer Science Teachers Association, CSTA)和其他人也为所有K-126的课程模型制作了值得一看的内容7。计算机科学教育研究人员已经花了多年时间去研究应该向学生教授什么内容。
关于计算机教育的研究
计算机教育不仅是任课教师的任务,更与整个行业的未来发展息息相关。它需要足够的支持以产出优秀的研究成果并应用于实践,也需要广大计算机爱好者的共同努力。
问:您认为计算机教育方面的研究应该如何开展?
塞特尔:一些关于计算机教育的研究只需要很少经费甚至不需要经费就可以进行。我的大部分编程教学工作是由那些活跃的本科生和我本人完成的。但是,大型课题需要大量经费。同其他计算机科学领域一样,获得这笔经费可能很难。尤为困难的是,这些资金在很大程度上依赖于政府资助。有时商业公司可以弥补一部分资金缺口,特别是当公司高管觉得计算机教育方面的研究能提升员工能力的时候。
问:您还有哪些话想对CCCF的读者说?
塞特尔:计算机教育是让人最激动的动态研究领域之一。任何人都可以参与计算机教育的研究。它把教学和研究结合在一起,可以同时促进二者的进步。我建议各位读者沿着这条道路向前走。如果你对这方面不太了解,可以阅读一些计算机教育相关的文章。如果你已经在定期阅读这方面的文章,可以尝试参加一个旨在发表相关论文的项目。如果你正在积极地参与教育项目,请考虑在计算机教育大会或期刊上主动发起活动。计算机教育需要你的贡献,无论它们是什么。 ■
注释:
1 ACM国际计算机教育研究会(ACM International Computing Education Research Conference)。
2 计算机教育创新与技术年会(The Annual Conference on Innovation and Technology in Computer Science Education)。
3 参见https://advancesinap.collegeboard.org/stem/computer-science-principles。
4 参见https://advancesinap.collegeboard.org/stem/computer-science-principles。
5 参见https://apcentral.collegeboard.org/courses/ap-computer-science-a/course?course=ap-computer-science-a。
6 美国基础教育阶段的统称,K代表幼儿园,12代表12年级。
7 参见http://csta.hosting.acm.org/csta/csta/Curriculum/sub/K12Standards.html。
所有评论仅代表网友意见